#ifndef __CONTEXT_H
#define __CONTEXT_H

#include <string>
#include <memory>
#include "State.hpp"

using namespace std;

class State;

class Context
{
private:
    shared_ptr<State> state;

public:
    Context();
    virtual void setState(shared_ptr<State>);
    virtual shared_ptr<State> getState();
    virtual string getContextName() = 0;
};

#endif
